1989-Club80-10 Nr.28 S.78-99
Es lebe der Standard!Hercules Graphic Adapter meets Trash 80Helmut BernhardtGenau besehen hat es auch Vorteile, daß der Industriestandard einen so niedrigen Standard hat. Insbesondere die Hercules-Karte, die dort schon nicht unbedingt als schlechteste Video-Karte gilt, ist schon fast zum TRS80 kompatibel. Ja, nicht ganz zu dem, aber doch schon zum GenieIIIs-Video-Interface. Wie im GIIIs gibt es dort eine 2K große Text-Video-Seite (80x25 Zeichen) und ebenso memory mapped. Zusätzlich bietet die Hercules aber auch noch einen 2K großen Attribut-Speicher, womit sich für jedes Zeichen auf dem Bildschirm einzeln Attribute setzen lassen. Und schließlich wird auf der Hercules wie im GenieIIIs mit 2 HRG-Pages mit je 32K Größe (ebenfalls bei beiden memory mapped) Grafik dargestellt. Bei beiden Geräten wird alles von einem CRTC6845 gesteuert. Die maßgeblichste Inkompatibilität ist die Tatsache, daß bei der Hercules Text- und Attribut-Seicher ineinander verschoben sind. Dort werden innerhalb eines lineren 4K-Bereichs alle geradzahligen Adressen für Textzeichen und alle ungeradzahligen Adressen für die dazugehörigen Attribute verwendet. Weniger störend sind die 10Bit-Portadressen des Industrie-Standards, mit denen die internen Register der Karte angesprochen werden. A8 und A9 kann man der Karte bei Z80-Portzugriffen einfach vorgaukeln. Folgende Tabelle stellt die Ähnlichkeiten und Abweichungen zwischen Hercules und GenieIIIs-Video-Interface zusammen:
Diese Ähnlichkeit ließ mich vor längerer Zeit schon mal darüber brüten, wie man die Hercules anstelle des dort recht lausigen Video-Interface in TRS80 und Genie-Rechnern einsetzen könnte. Zunächst dachte ich an einen Adapter, der mir die nötige Adreßübersetzung macht und die Verbindung zwischen Genie-CPU-Board und Hercules herstellt. Dann dachte ich daran, daß sich dieser Aufwand für das ebenfalls recht lausige Genie-CPU-Board nicht lohnt. Inzwichen ist um diesen reinen Adapter ein ganzes CPU-Baord gewachsen, das noch einiges mehr bietet als das Genie-CPU-Board und dabei auf die Maße einer Europa-Karte geschrumpft ist. Das Board enthält all das, was mir bislang lieb geworden ist:
[1] H64180-CPU Bank-Switching, Adressdecoder, Hercules-Interface) Damit steht mir ein voll Genie1-kompatibler (nur Spiele lassen sich ohne Bauklötzchengrafik nicht so richtig spielen) Computer zur Verfügung. Die Hercules stellt mir dafür den Standard-64x16-Bildchirm, eine 80-Zeichen-Karte und zwei hochauflösende Grafikseiten mit je 720x348 Punkten zur Verfügung, und das alles für 10,-DM. Die eigentlichen Kosten fallen bei der Beschaffung der RAMs an. Zugegeben - 256K hätten's beim Genie auch getan, aber das Teil-Layout mit CPU, RAMs, EPROM, RAM-Steuerung und Treibern für die V24-Schnittstellen brauchte ich nur aus der Schublade zu ziehen und beim Rest habe ich mir dann auch keine große Mühe mehr gemacht. So ist Der Aufbau der Kartezu einem richtigen kleinen Abenteuer geworden. Das Layout beschränkt sich auf einseitge Leiterbahnführung und versucht, dort so viele Verbindungen unterzubringen, wie irgend möglich. Nur im hinteren Teil der Karte (der aus der Schublade), war es möglich, alles mit Drahtbrücken zu erledigen - bis auf das EPROM, das muß auch von Hand verdrahtet werden, dort sind nur D0-7, +5V und GND angeschlossen. Was von Hand zu verdrahten ist, kann aus der Verdrahtungsliste ersehen werden. Wer nun immer noch glaubt, daß er dieses Projekt durchstehen kann, und von mir zum Selbstkostenpreis ein geätztes, ungebohrtes Board bekommen hat, muß zunächst mal 1-2 Stunden mit der Bohrmaschine zubringen. Die 3 Stecker für VG64-Leiste, für die Pfostenfeld-Leiste zum Aufstecken der Hercules-Karte und die Pfostenfeld-Leiste für die seriellen Schnittstellen müssen 1mm-Bohrungen erhalten, alle anderen Bohrungen sind in 0,8mm niederzubringen. Wenn man sich davon wieder erholt hat, legt man sämtliche Drahtbrücken (Drahtbrücken- und Bestückunpsplan) und fängt dann erst an, Kleinteile und IC-Sockel einzulöten. Da die Drahtbrücken teilweise recht eng liegen, sollte grundsätzlich dünner Kupfer-Lackdraht verwendet werden. Bei Drahtbrücken, die +5V und GND führen sollen (solche Brücken enden meistens an etwas breiteren Leiterbahnen), ist etwas dickerer isolierter Schaltdraht vorzuziehen. Es sei noch gesagt, daß im dichter besiedelten vorderen Bereich (beim Busstecker) in der ersten Reihe ein IC nicht zu bestücken ist. Weil der Platz halt da war, habe ich da vorsichthalber mal die Lötaugen hinterlegt, damit es spätere Bastler bei Erweiterungen einfacher haben. Auf der Busplatine oder frei improvisiert auf dem CPU-Board müssen die CPU-Signale /BUSRQ, /RESET, /WAIT, /MMI und /INT0 mit 10k-Ohm an +5V gelegt werden. /INT1 und /INT2 müssen direkt am HD64180 über 10k an +5V gelegt werden. Wenn diese Eingänge nicht genutzt werden, genügt ein gemeinsamer Widerstand. Die 62polige Steckleiste zum Anschluß der Hercules ist für eine spezielle, besonders kleine Karte gedacht, die direkt neben dem für PC-Karten üblichen Platinenrand-Stecker zwei Reihen Durchkontaktierungen aufweist, die freundlicherweise im RM2,54 Rastermaß angelegt sind und eine Weite von 1 mm haben. Wenn hier von der Bestückungseite eine zweireihige Buchsenleiste eingelötet wird, und auf dem CPU-Board die Pfostenfeld-Leiste mit etwa um 1cm verlängerten Beinchen eingelötet wird, können beide Karten direkt aufeinander gesteckt werden. Der Fernseher darf leider nicht der alte vom Genie1 bleiben. Die Hercules benötigt einen TTL-Monitor (ohne Gehäuse und Netzteil bekommt man sowas im Elektronik-Ramsch-Versandhandel für ca. 40,-DM). Andererseits gibt es auch TTL/BAS-Wandler, denen man aber ein aus "Video" und "Intensity" zusammengeführtes Signal anstelle des reinen Video-Signals zuführen sollte, um nicht auf die Helligkeitssteuerung der Hercules verzichten zu müssen. RAM-Steuerung, ECB-Bus-SteuerungProgrammierung der Hercules-Karte
B4H Adressregister des CRTC6845 Für die Programmierung des CRTC6845 ist ein Datenblatt erforderlich. Durch Trial-and-Error Methoden soll man es schaffen können, den Monitor dauerhaft zu disablen. Es sei nur soviel gesagt, daß der CRTC eine ganze Menge Datenregister besitzt, wovon nur die ersten 16 relevant sind. Sie haben alle die Adresse B5H. Auf welches dieser Register jeweils über Port B5H zugegriffen werden kann, bestimmt der Eintrag in das Adressregister B4H. Die Initialisierungsroutine im ROM enthält an der Adresse 3000H 5 Tabellen mit je 16 Daten für die ersten 16 Datenregister des CRTC und eine Routine, die dem CRTC diese Daten einverleibt. Wenn HL auf den Anfang der jeweiligen Tabelle zeigt. Dort mag sich der Softi informieren, der lieber noch exotischere Bildschirm-Formate einstellen möchte. Die grundsätzliche Bedeutung der CRTC-Register ist aus mc 1/88 S.113 zu entnehmen. Der Display-Betriebsart-Steuerkanal (Port B8H) der Hercules reagiert nur auf die Bits 1, 3, 5 und 7. Die geradzahligen Datenbits haben dort keine Funktion. Da die Einstellungen dieses Registers für die Adreßübersetzung des Interface zur Hercules von Bedeutung sind, wurde dieser Port auf dem CPU-Board nachgebildet und um die geradzahligen Bits bereichert. Setzen und Zurücksetzen einzelner Bits dieses Ports durch Auslesen, Bit verändern und Zurückschreiben ist also nicht möglich. Man muß dafür im RAM über den Zustand des Ports Buch führen. In der folgenden Tabelle sind die Funktionen der einzelnen Bits des erweiterten Ports B8H zusammengestellt. Die urgsprünglichen Funktionen des Ports auf der Hercules, die nach wie vor gelten, sind mit # markiert. Display-Mode-Control-Port, B8H
Bestückungs- und Drahtbrücken-Plan Teil-Layout (von der Bestückungsseite gesehen) Die Einteilung des 1MB-Speichers
Wenn A18 der CPU low ist, wird immer der unterste 256K-Block angewählt. Wenn A18 high ist, wird einer der 3 anderen Blocks selektiert. Welcher djeser 3 Blocks selektiert wird, hängt von den Zuständen von D0 und D1 des Ports F4H ab. Diese Vorgaben gelten sowohl für die MMU als auch für den DMA-Controller. Nach einem RESET ist die MMU des HD64180 immer so eingetellt, daß der logische 64K-Z80-Adreßraum in den unteren 64K des unteren 256K-Blocks liegt. Um die Standard-Software (Newdos/80, CP/M) zu fahren, braucht die MMU nicht umprogrammiert zu werden. Die Decodierung von RAM und memory mapped I/O schließt auch die Adressen A16-A19 mit ein, so daß diese Baugruppen im Physikalischen Adressraum 00000H-03FFFH liegen. Nur der HRG-Speicher der Hercules-Karte mit 2mal 32K wäre bei 08000H eingeblendet etwas lästig und wurde deshalb an das obere Speicherende bei 0F0000H verbannt. Für die MMU und den DMAC des HD64180 sind dies die Adressen 70000H-7FFFFH, wobei D0 und D1 von Port F4H gesetzt sein müssen, damit der HRG-Speicher adressiert wird. Neben der Grundeinstellung (D7 an Port F4H low, Zustand nach RESET) gibt es noch eine andere Lage für die memory mapped Baugruppen. Wenn D7=1 an Port F4H ausgegeben wird, liegen ROM, Floppy, Drucker, Tastatur und Text-Video-RAM bei 0C000H-0FFFFH und die untersten 16K sind RAM. Und schließlich läßt sich innerhalb dieser 16K (wo auch immer die memory mapped Baugruppen eingeblendet sind) sehr komfortabel umkonfigurieren, darüber gibt die Tabelle der Bedeutung der Bits des erweiterten Ports B8H und die Map der Speipcheraufteilung Auskunft. In allen Bereichen, wo die jeweilige memory mapped Baugruppe ausgeblendet ist, liegt dann automatisch RAM vor. Der Text-BildwiederholspeicherDie Hercules-Karte stellt im Text-Modus einen 2K großen Bildwiederholspeicher für Text und einen 2K großen Attribut-Speicher zur Verfügung. Diese Speicher sind ineinander verschoben; innerhalb eines linearen 4K-Bereichs stellen die geraden Adressen den Text-Speicher und die ungeraden Adressen den Attribut-Speicher dar. Video-Attribute waren aber damals, als der TRS-80 geboren wurde, noch unbezahlbarer Luxus. Deshalb scheint der Attribut-Speicher der Hercules der Kompatibilität zum TRS-80 im Wege zu stehen. Der TRS-80 braucht einen zusammenhängenden Bildwiederhol-Speicher von 1K Größe (und manche jüngeren Brüder können auch mit 2K Textspeicher umgehen). Dieses unlösbare Problem läßt sich dadurch lösen, daß beim Text-Modus die Adressen A0-A10 der CPU (2K-Bereich) auf die Adressen A1-A11 der Hercules-Karte gelegt werden. Diese Umsetzung darf aber nur bei Zugriff auf den Text- und den Attribut-Speicher erfolgen. Bei HRG-Betrieb und bei Zugriff auf die Ports der Karte müssen alle Adressen direkt durchgeschaltet werden. Die für das Selektieren von Text- oder Attribut-Speicher zuständige Adresse A0 (zur Hercules) wird im Text-Modus von D7 des erweiterten Ports B8H und bei Zugriff auf Hercules-Ports und HRG-Speicher von A0 der CPU bedient. Diese Adressteuerung wird von PAL3 und einem 74LS157-Multiplexer erledigt. Die damit auf 2K reinen Text-Speicher (und nach Umschalten 2K reinen Attriut-Speicher) beschränkte Bildschirmseite ist aber für den TRS-80, der nur 1K bei 3C00H dafür vorsieht, immer noch zu groß. Deshalb kann mit D0=0 an Port B8H (Einstellung nach der Initialisierung im ROM) die Freigabe nur der oberen Hälfte des Text-Speichers im Bereich C000-3FFF vorgegeben werden. Für das TRS-80-Format 64x16 Zeichen muß dann aber auch der CRTC-6845 entsprechend programmiert werden. Dies wird ebenfalls durch die Initialisierung im ROM erledigt. Das Betriebssystem findet dann beim anschließenden Booten eine voll TRS-80-kompatible Maschine vor. Wenn D0=1 an Port B8H ausgegeben wird, ist der volle 2K-Text-Speicher im Bereich 3800-3FFF verfügbar. Um eine vernünftige Darstellung auf dem Bildschirm zu haben, muß dann aber auch der CRTC6845 entsprechend initialisiert werden. Jm 80x25-Modus ist die Tastatur dann aber nicht mehr zugänglich. Für das Aulesen der Tastatur muß dann immer erst in den 64x16-Modus zurückgeschaltet werden und nach dem Auslesen der Tastatur für weitere Bildschirm-Ausgaben wieder der 80x25-Modus eingestellt werden. Wenn dabei die Register des CRTC-6845 in Ruhe gelassen werden und nur mit D0 von Port B8H geschaltet wird, bleibt die Darstellung auf dem Bildschirm unbeeinträchtigt. Die Umschaltung betrifft dann nur die Zugriffmöglichkeiten der CPU auf den Bildwiederholspeicher. Das für die Darstellung des Bildpeichers auf dem Monitor verantwortliche Auslesen des 6845 wird dadurch nicht belangt. Die Initialisierungs-Routine im ROM füllt zunächst den gesamten Attribut-Speicher mit dem Standard-Wert 7. Das bedeutet, daß die Zeichen auf dunklem Hintergrund mit normaler Helligkeit dargestellt werden, wenn der Attribut-Speicher bei der Textausgabe nicht berücksichtigt wird. Es sind allerdings dies die Zeichen entsprechend Big Blue's Verständnis von ASCII-Code. Die Zeichen mit den Codes 5BH-5FH und 7BH-7FH sind grundsätzlich die amerikanischen Zeichen (geschweifte und eckige Klammern u.s.w.). Den deutschen Umlauten und auch allen anderen nationalen Sonderzeichen sind feste ASCII-Codes mit gesetztem Bit7 zugeordnet. Das hat den Nachteil, daß bei allen von Standard-Programmen unter MEWDOS und CP/M ausgegebenen Texten anstelle der deutschen Umlaute die entsprechenden amerikanischen Zeichen erscheinen. Ein Vorteil besteht aber auch darin, daß amerikanische Sonderzeichen und sämtliche nationalen Umlaute gleichzeitig dargestellt werden können. Für Soft-Freaks besteht hier ein weites Betätigungsfeld in der Anpassung von Tastatur-Treibern und Standard-Programmen. Die Bildchirm-Attribute
D0-D2, D4-D6
Die HRG der Hercules-Karte Hier ist der HRG-Speicher ans obere Ende des physikalischen 1MB-Speichers verbannt worden. Das Besudeln des Grafik-Seichers erfolgt im einfachsten Fall durch blockweise Übertragung per DMA. Wer aber trotzdem gerne direkt in das HRG-RAM schreiben möchte, kann sich dieses durch die in die untere oder obere Hälfte seines 64K-Arbeitsspeichers einblenden. Nach einem RESET ist die Text-Betriebsart eingstellt. Mit D1=1 an Port B8H läßt sich auf die HRG-Betriebsart "Half-Mode" umstellen, wenn in Port BFH D0=1 eingetragen ist. Dabei ist die untere Hälfte (Page 0) erreichbar. Um auch die Page 1 erreichen zu können, muß auch D1=1 an Port BFH ausgegeben werden. Während der Grafik-Betriebsart ist der Text-Bildspeicher nicht zugänglich. Da dieser aber physikalicher Bestandteil der Page 0 der HRG ist, wird der Inhalt des Textspeichers bei Grafikausgaben an Page 0 überschrieben. Gleiches gilt für den Attribut-Speicher. Die Tastatur Beim Arbeiten im 80x25-Textmodus ist die Tastatur nicht erreichbar. Dann liegt ab 3800H Bildwiederhol-Speicher vor. Um die Tastatur zwichendurch auszulesen, muß mit D0=0 an Port B8H vorübergehend auf 1K Video-RAM umgeschaltet werden. Da das aber nicht den Zugriff des CRTC6845 auf den Bildspeicher beeinflußt, zeigt sich das Umschalten nicht in der Darstellung auf dem Bildschirm. Wenn es auch Wahnsinn ist, eine Tastatur memory-mapped als offene Matrix an einen Computer anzuschließen, weil bei höheren Taktraten und längeren Anschlußleitungen Probleme zu erwarten sind, kommt man bei einem TRS-80-kompatiblen Rechner um diesen Unsinn nicht herum, wenn auch der Betrieb von OLDDOS/80 und der darunter laufenden Programme möglich sein soll. Ein einfaches Interface (Abb.7) kann auf einem Stück Lochrasterplatine in Fädeltechnik aufgebaut werden und mit einer VG64-Steckerleiste an den ECB-Bus gesteckt werden. Die Tastatur kann daran über ein nicht zu langes, 16poliges Kabel angeschlossen werden. Die Freigabe des ROMs Wenn D7 an Port F4H high ausgegeben wird, verschiebt sich die Lage des ROM-Inhalt von 0000-36FF nach C000-F6FF. Das ist zwar wenig sinnvoll/ weil der Stoff auf dieser Adresslage nicht läuft, ließ sich aber wegen des für CP/M nötigen Verschiebens des memory mapped I/O nach F7E0-FFFF nicht verhindern. Wenn das ROM aber ausgeschaltet wird (D2 an Port B8H high), stört es dort nicht mehr. Das Abschalten des ROMs über D2 an Port B8H läßt sich natürlich auch in der ursrünglichen Lage bei 00000H durchführen. Da das ROM ohnehin nur beim Lesen freigegeben wird und beim Schreiben RAM eingeblendet ist (auch wenn das ROM nicht abgeschaltet ist) kann das Kopieren des ROM-Inhaltes in das RAM durch ein einfaches LDIR auf sich selbst (HL = DE = 0) erfolgen. Das wird in der Initialisierung vorsichtshalber auch schon mal gemacht. Floppy, Drucker und der ganze Rest Wer von seinem alten Genie oder TRS80 her noch einen RB-EXP1 Controller besitzt, hat damit ein weiterhin brauchbares Gerät vorliegen. Diesem Board muß nur noch ein VG64-Stecker spendiert werden. Dieser Stecker wird auf einen 2cm breiten Streifen Lochraster-Platine gelötet, der wiederum mit zwei schmalen Streifen Pertinax oder Sonstigem Kunststoff mit dem RB-EXP1 verschraubt wird (Abb.6). Auf der Lötseite werden dann die ECB-Signale des Steckers mit den entsprechenden Punkten der beiden Anschlußstecker des EXP1 verbunden.
Da das Freigabe-Signal für den Controller bereits auf dem CPU-Board erzeugt wird und auch schon die Umschaltmöglichkeiten beinhaltet, sollte lieber dieses Signal verwendet werden als das auf dem EXP1 hergeleitete Signal /37EX. Dafür wird das Signal /FLO von PAL1 auf dem CPU-Board über eine nicht benutzte ECB-Leitung an den Controller geführt und dort an die Pins 2 und 14 des 74LS155 gelegt. Die beiden 74LS30 beim 16poligen Stecker, die vorher das Signal /37EX und die Drucker-Freigabe über Port FDH geliefert haben, können enternt werden. Die Verwendung des Signals /FLO erübrigt auch die Zuführung der Signale, die in obiger Tabelle nicht angeführt sind und bei Verwendung des EXP1 im Genie oder TR-S80 zusätzlich angeschlossen werden mußten. RAM-Speicher satt Im Bereich des ROMs (00000-002FF) und der Tastatur (03800-038FF), wenn diese im 64x16-Textmodus erreichbar ist, kann der RAM-Speicher auch beschrieben werden, ohne daß ROM bzw. Tastatur ausgeschaltet werden müssen. Nur zum Lesen dieser RAM-Bereiche müssen diese Einheiten ausgeblendet werden. Ein entscheidender Nachteil des Industrie-Standards sei zum Schluß noch erwähnt. Um das vom Genie her bekannte Flickern bei Ausgaben auf den Bildschirm zu verhindern, lassen modernere Hercules-Karten einen Zugriff auf das Video-RAM nur zu, wenn der Elektronenstrahl vom rechten zum linken Bildrand zurückläuft und dabei dunkel gesteuert ist. Die CPU wird während der Zeit des Strahlrücklaufs mit einem Wait (/IO_CH_RDY, Pin A10 des PC-Slots) ruhiggehalten. Offensichtlich ist das Wait-Timing bei HD64180 anders als beim 80286 im PC-AT, denn die Hercules macht im Genie nur bis 5MHz Systemtakt mit; bei höheren Takten erscheint nur noch Müll auf dem Fernseher. Es gibt aber auch Hercules-Karten, die sich wie ein normales Genie-Video-Interface ohne Rücksicht auf Flickern beschreiben lassen, Eventuell läßt sich damit dann der für das CPU-Board als machbar zu erwartende Takt von 9,216 MHz fahren. Wahrscheinlich muß dann aber ein Wait aus dem Freigabesignal /HA18 für die Speicher der Hercules-Karte erzeugt werden, das den Zugriff der CPU um 1 oder 2 Takte verlängert. Da ich eine solche Karte aber nicht habe, will ich darüber auch nicht weiter nachdenken. Das System verfügt noch nicht über eine Reset-Schaltung. Diese kann im einfachsten Fall durch Kurzschließen von /RESET (ECB-Bus, 31c) mit GND über einen Taster bereitgestellt werden. Da aber während der Zeit, in der der Taster gedrückt ist, kein Refresh der dynamischen RAMs erfolgt, gehen bei einem Reset Daten verloren. Eine einfache Schaltung mit einem 555-Timer und einem Taster erzeugt sowohl beim Einschalten als auch beim Betätigen des Tasters ein getimtes /RESET-Signal, das ein längeres Ausbleiben des Refresh verhindert (Abb.5). Freie Verdrahtung auf der Lötseite Signal IC,Typ,Pin IC,Typ,Pin ... D0 18,273,8 10,27128,11 D1 18,273,7 10,27128,12 D2 18,273,4 10,27128,13; PC-Slot,A7 D3 18,273,13 10,27128,15 D4 18,273,8 10,27128,16; PC-Slot,A5 D5 18,273,14 10,27128,17 D6 18,273,17 10,27128,18 D7 18,273,18 10,27128,19 D0 17,64180,34 30,125,5 D1 17,64180,35 30,125,2 D2 17,64180,36 38,245,4 D3 17,64180,37 38,245,5 D4 17,64180,38 38,245,3 D5 17,64180,39 38,245,9 D6 17,64180,40 30,125,11 D7 17,64180,41 31,174,13 /HALT 17,64180,56 VG64-Leiste,25c /REF 17,64180,57 VG64-Leiste,28a /IOE 1,PAL1,1 17,64180,58; 19,32,10; PC-Slot,A10; 33,245,7; 37,PAL2,13 /ME 16,32,4 17,64180,59; 19,32,13; 33,245,2; 37,PAL2,14 /LIR 17,64180,61 37,PAL2,23 /WR 17,64180,62 19,32,12; 33,245,9; 37,PAL2,3 /RD 1,PAL1,2 17,64180,63; 19,32,1; 33,245,8; 37,PAL2,1 CLK 17,64180,64 VG64-Leiste,29c /WAIT 17,64180,4 VG64-Leiste,10,a; PC-Slot,A10 /BUSAK 17,64180,5 37,PAL2,2 /BUSRQ 17,64180,6 VG64-Leiste,11a /RESET 18,273,1 17,64180,7; 15,04,5; 31,174,1; VG64-Leiste,31c /NMI 17,64180,8 VG64-Leiste,20c /INT0 17,64180,9 VG64-Leiste,21c /ST 17,64180,12 35,245,2 A0 17,64180,13 10,27128,10; 25,PAL3,7; 32,157,2; 38,245,2 A1 17,64180,14 10,27128,9; 32,157,14/3; 36,245,6 A2 17,64180,15 10,27128,8; 32,157,13/5; 36,245,3 A3 17,64180,16 10,27128,7; 32,157,11/6; 36,245,4 A4 17,64180,17 10,27128,6; 25,PAL3,16; 32,157,10; 35,245,5 A5 17,64180,18 10,27128,5; 25,PAL3,6; 36,245,7 A6 17,64180,19 10,27128,4; 25,PAL3,5; 36,245,8 A7 17,64180,20 10,27128,3; 25,PAL3,4; 36,245,9 A8 1,PAL1,6 10,27,128,24; 17,64180,21; 25,PAL3,3; 35,245,3 A9 1,PAL1,5 10,27,128,25; 17,64180,22; 25,PAL3,2; 35,345,4 A10 1,PAL1,4 10,27,128,21; 17,64180,23; 25,PAL3,1; 35,345,5 A11 1,PAL1,3 10,27,128,23; 17,64180,24; 35,345,7 A12 17,64180,25; 10,27128,2; 20,86,5; 28,30,12; 33,245,5 A13 17,64180,26; 10,27128,27; 20,86,9; 20,30,11; 33,245,6 A14 17,64180,27; 20,86,2; 35,245,6 A15 17,64180,28; 20,86,12; 33,245,3 A16 17,64180,29; 12,157,5; 27,02,11; 35,245,4 A17 17,64180,30; 12,157,11; 27,02,12; 35,245,8 A18 17,64180,31; 24,00,5; 21,08,13/2; 35,245,9 A18' 21,08,4; 11,157,14 A19' 21,08,5; 11,157,2 B81 18,273,6; 25,PAL3,9; 29,125,4; 16,32,5; 15,04,9 /B81 18,273,16; 25,PAL3,11 Q0 30,125,5; 16,32,10 Q1 30,125,2; 21,08,12 X 16,32,8; 21,08,1 Y 24,00,6; 15,32,9 /M016 26,20,8; 1,PAL1,14 /M1216 28,30,8; 1,PAL1,22 MFxxxx 26,20,6; 1,PAL1,18 /OUTB8 37,PAL2,19; 9,273,11 /OUTF4 37,PAL2,18; 31,174,9 /INF4 37,PAL2,17; 30,125,10 /ADR 37,PAL2,15; 1,PAL1,17 /ROM 1,PAL1,20; 10,27128,20; 10,27128,22 /FLO 1,PAL1,16; 37,PAL2,19; VG64-Leiste,z.B.23c /KB 1,PAL1,19; 37,PAL2,20; VG64-Leiste,z.B.23a /RAM 1,PAL1,22; 16,32,1 /HA18 1,PAL1,21; PC-Slot,A13 HA15 20,86,11; PC-Slot,A16 HA14 20,86,3; PC-Slot,A17 HA11 29,125,6; PC-Slot,A20 RESET 15,04,6; PC-Slot,B2 SEL 16,32,6; 32,157,1 +5V 22,1489,14; 20,86,14; 17,64180,32; 10,27128,28; 4,RAM,9 +5V 1,PAL1,24; 2,RAM,9 +5V 25,PAL3,20; PC-Slot,A12/A14/A15/B29 GND 10,27128,14; 20,86,7; 26,20,7 GND 17,64180,33;10,04,7; V24-Stecker,9/10 +12V 23,1488,14; VG64-Leiste,13a -12V 23,1488,1; VG64-Leiste,14a ;Initialisierung der Hercules-Karte und der HD64180-CPU ;im Sonder-ROM-Bereich ab 3000H ; ;Diese Routinen werden aus dem ROM heraus angesprungen ;und übergeben zum Schluß wieder an die TRS-80 Boot- ;Routine. Dafür muß das ROM ab 0000H folgendermaßen ;geändert werden:
Assembler-Listing für PAL1 PAL20L8 Helmut Bernhardt 22.01.89 Erzeugen der mm -Freigabesignale ioe rd a10 a11 a9 a8 nc b80 b81 b82 b84 gnd b86 m016 nc flo adr mfxxxx kb rom ha18 ram m1216 vcc /ha18 = /b86 */b81 */b80 */m1216 *a11 *a10 + /b86 */b81 * b80 */m1216 *a11 + /b86 * b81 */mfxxxx /kb = /b86 */b80 */rd */m1216 *a11 */a10 */a9 */a8 /flo = /b84 */m1216 */a11 *a10 *a9 *a8 */adr + b84 */ioe */adr /rom = /b82 */m016 *m1216 */rd + /b82 */m1216 */a11 */a10 */rd + /b82 */m1216 */a11 * a10 *a9 */rd + /b82 */m1216 */a11 * a10 *a9 */a8 */rd /ram = ioe *ha18 *kb *flo *rom Assembler-Listing für PAL2 PAL20L8 Helmut Bernhardt 24.01.89 I/O-Decoder und Datentreiber-Steuerung rd busak wr a0 a2 a3 a4 a1 a5 a6 a7 gnd ioe me adr herc inf4 outf4 outb8 flo kb rein lir vcc /inf4 = /ioe /rd *a7 *a6 *a5 *a4 */a3 *a2 */a1 */a0 /outf4 = /ioe */wr *a7 *a6 *a5 *a4 */a3 *a2 */a1 */a0 /outb8 = /ioe */wr *a7 */a6 *a5 *a4 *a3 */a2 */a1 */a0 /adr = a7 *a6 *a5 */a4 /herc = /ioe *a7 */a6 *a5 *a4 /rein = busak */ioe */lir + /ioe */rd *inf4 *herc + /busak *rd + /flo */rd + /kb */rd Assembler-Listing für PAL3 PAL16L8 Helmut Bernhardt 23.01.89 Adreßübersetzung für die Hercules-Karte a10 a9 a8 a7 a6 a5 a0 me b81 gnd b87 ha0 ha5 ha6ha7 a4 ha8 ha9 ha10 vcc /ha0 = /me * /b81 * /87 + /me * b81 * /a0 * /me * /a0 /ha5 = /me * /b81 * /a4 + /me * b81 * /a5 + me * /a5 /ha6 = /me * /b81 * /a5 + /me * b81 * /a6 + me * a6 /ha7 = /me * /b81 * /a6 + /me * b81 * /a7 + me * /a7 /ha8 = /me * /b81 * /a7 + /me * b81 * /a8 /ha10 = /me * /b81 * /a9 + /me * b81 * /a10 Pinbelegung des V24-Steckers CN2
|